package hluck.me.srorage.sys.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import hluck.me.srorage.sys.domain.SysRole;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 老雷
 * @since 2021-02-15
 */
public interface SysRoleMapper extends BaseMapper<SysRole> {
    /**
     * 根据角色id删除sys_permission_role
     * @param id
     */
    void deleteRolePermissionByRid(Serializable id);

    /**
     * 根据角色ID删除sys_permission_user
     * @param id
     */
    void deleteRoleUserByRid(Serializable id);

    /**
     * 根据角色ID查询当前角色拥有的所有权限或菜单ID
     * @param rid
     * @return
     */
    List<Integer> getAllPid( Integer rid);

    /**
     * 保存角色和菜单之间的关系
     * @param rid
     * @param pid
     */
    void saveRolePermission(@Param("rid")Integer rid, @Param("pid")Integer pid);

    /**
     * 根据用户id删除用户角色中间表的数据
     * @param id
     */
    void deleteRoleUserByUid(@Param("id") Serializable id);

    /**
     * 根据用户id查询角色并选中已拥有的角色
     * @param id
     * @return
     */
    List<Integer> queryUserRoleIdsByUid(Integer id);

    /**
     * 保存用户和角色的关系
     * @param id
     * @param rid
     */
    void insertUserRole(@Param("uid") Integer id,@Param("rid") Integer rid);


    /**
     * 根据角色id查询角色已拥有的权限
     * @param id
     * @return
     */
    List<Integer> queryRolePermissionIdsByRid(Integer id);
}
